// 内省就是检查实例的类型
function Foo(){
}
Foo.prototype.some=function(){

}
var a1=new Foo();
/*instanceof 似乎是检查 a1 和 Foo 的关系，但是实际上它想
说的是 a1 和 Foo.prototype（引用的对象）是互相关联的。*/
console.log(a1 instanceof Foo);
//if (a1 instanceof Foo) { 
  //  a1.some(); 
  // }
  
// 鸭子类型
/*我们并没有检查 a1 和委托 something() 函数的对象之间的关系，而是假设如果 a1 通过了
测试 a1.something 的话，那 a1 就一定能调用 .something()（无论这个方法存在于 a1 自身
还是委托到其他对象）。*/
if(a1.some){
    a1.some();
}
   
